package com.minimalist.common.entity.basic.vo.user;

import com.minimalist.common.config.mybatis.bo.PageReq;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.Objects;

import java.io.Serial;
import java.io.Serializable;

/**
 * @author 11987
 */

@Schema(name = "用户查询实体")
public class UserQueryVO extends PageReq implements Serializable{

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(name = "userRealName", description = "用户真实姓名", type = "string")
    private String userRealName;

    public String getUserRealName() {
        return userRealName;
    }

    public void setUserRealName(String userRealName) {
        this.userRealName = userRealName;
    }

    @Schema(name = "phone", description = "手机号码", type = "string")
    private String phone;

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    @Schema(name = "dept", description = "选择的部门", type = "string")
    private Long deptId;

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    @Schema(name = "status", description = "用户状态", type = "integer")
    private Integer status;

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        UserQueryVO that = (UserQueryVO) o;
        return Objects.equals(userRealName, that.userRealName) &&
               Objects.equals(phone, that.phone) &&
               Objects.equals(deptId, that.deptId) &&
               Objects.equals(status, that.status);
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), userRealName, phone, deptId, status);
    }

    @Override
    public String toString() {
        return "UserQueryVO{" +
               "userRealName='" + userRealName + '\'' +
               ", phone='" + phone + '\'' +
               ", deptId=" + deptId +
               ", status=" + status +
               '}';
    }
}
